93 - NHR Perflab Seminar 2025-07-15: C++ is (nearly) all you need for HPC [ID:58419]
50 von 938 angezeigt

Well, thanks very much.

For the invitation, I'm looking forward to talking to you about C++.

I tried to come up with a title that maybe was quite provocative, so it's good to see

so many of you here to come and see what I mean by this.

So for me, one of the big challenges that as a community of people trying to use these

large scale computers to do interesting and useful research and science is the challenge

of actually programming the things and getting the best performance out of them.

And that leads us to a question, which is, so what heterogeneous programming model should

I use?

And there are many options.

And in recent history, I guess we've sort of seen it a little bit like this boxing match

Which one is going to win out overall?

Which one's going to be the one that's going to last everything?

And there's lots of pros and cons to this.

Some of them are open standards, some of them are not.

Some of them may be open source projects.

Some nuance there between a standard versus an open source project, mainly in terms of

governance.

Who are the people behind the ship that's steering the progress of that parallel programming

model is a difference there.

Maybe they only support one vendor, maybe they support lots of different vendors, maybe

they don't support GPUs at all.

Maybe they only support CPUs.

And then is the syntax actually the same if you want to support different types of devices

or not?

And there's all these different choices and trade offs.

But throughout all of this, this sort of thing at the bottom left is this key observation

that we start with a serial programming language, something like C or C++ or Fortran.

And then because we want to program a large scale system, we add in MPI and that gives

us some distributed memory abstractions and message passing, all that good stuff.

And then we also plug in a load of other stuff, whether it's directives or another framework

or a programming model to enable us to program the multi-cores or the accelerators that are

available on that node.

So what's interesting then is that serial programming language is not serial anymore.

And since the release of C++17, it builds in these abstractions for shared memory and

accelerated parallel programming.

So maybe the question, the sort of research question that I had at the beginning was maybe

we don't need this blue box on the right hand side.

Maybe we can just get away with parallel C++ or parallel Fortran or whatever, and MPI for

distributed memory.

So this talk is about C++, but I should mention Fortran.

C++ is the second here, right?

It's Fortran got their first back in 2010.

They added DoConcurrent to Fortran 2008.

They also added CoArrays.

So maybe Fortran is just all you need and C++ is nearly all you need.

So obviously Fortran is a very important language.

Many of the cycles in the UK national machines are running Fortran code.

It's interesting that Fortran as a standard is still developing.

See, the Fortran 2023 adding lots of extra features, mainly the reduction clause, the

Teil einer Videoserie :
Teil eines Kapitels:
NHR@FAU PerfLab Seminar

Zugänglich über

Offener Zugang

Dauer

00:53:00 Min

Aufnahmedatum

2025-07-15

Hochgeladen am

2025-07-22 16:36:06

Sprache

en-US

Speaker: Dr Tom Deakin, University of Bristol
Abstract:
To write an HPC code, we use a serial programming language and add in the parallelism with an API, compiler directives, or frameworks, such as MPI, OpenMP, etc. But since the release of C++17, there are built-in parallel patterns that can easily be used for shared-memory and accelerated parallel programming. Since then, C++ has grown to include more features relevant to the types of programs we write for HPC. In this talk, I will highlight the features added in recent C++ standards, including standard parallel algorithms, mdspan, linalg, and execution, and how my group has explored these for HPC applications. Finally, I will describe the limitations of C++ today, and discuss a future for standards-based programming.
For a list of past and upcoming NHR PerfLab seminar events, please see: https://hpc.fau.de/research/nhr-perfl...
Einbetten
Wordpress FAU Plugin
iFrame
Teilen